The present invention is generally directed to modems that enable data to be transferred between computers by means of telephone lines or other communication links. More specifically, the invention is directed to a communication system including a modem that is adapted to be incorporated or embedded into the structure of a computer and that emulates the functions of a peripherally disposed modem, to enable it to operate under the control of presently available communications application software without modification of that software. Although not limited thereto, the invention is particularly concerned with communication systems that are designed for use with microcomputers, also known as "personal computers."
Communications between computers involve the generation of two types of information: the data itself that is to be transferred between the computers and control characters that configure the modem to properly transmit and receive the data. The data can come from a number of different sources, e.g., directly from the computer keyboard or from a file stored on a disk, and the control characters are generated by a host processor under the control of a communications program. While the data is transmitted over the telephone lines, the control characters are not intended to be placed on the telephone lines and therefore it is necessary for the modem to recognize and intercept these control characters when they are generated by a host processor. One popular design for modems incorporates an 8250 UART (universal asynchronous receiver/transmitter) with a dedicated controller to intercept and process control characters.
In operation, when the host processor of the computer generates a command to the modem to carry out a function, e.g., dial a particular number, it places control characters in a register of the 8250 UART. The controller retrieves the command characters from the UART and configures the modem to transmit pulse or tone signals corresponding to the dialing of a telephone. The processor then provides the modem with the number to be dialed, via the UART and controller. After the dialing of the number has been completed, the controller waits for a response from the called modem. When the called modem responds and a connection is established over the telephone lines, the controller sends response characters to the host processor to indicate that a connection has been established and the transmission of data can take place.
During the time that the controller is configuring the modem and the connection is being established, the communications program may relinquish control of the host processor to enable the processor to execute its main program and attend to other internal tasks. Thus, when the modem is ready to send response characters to notify the processor that the connection has been established, it is necessary to provide a prompt which causes the communications program to receive the characters. One type of prompt is an interrupt request generated by the UART, which causes the processor to jump to an appropriate address in the communications program to receive the characters. Alternatively, or in addition, the UART can set a status flag in an appropriate register to indicate that a character is in place to be received by the processor. The processor can periodically poll the status register to determine whether the status flag has been set. In response to the interrupt or detection of the status flag, the processor receives the response characters indicating a connection has been established. It then retrieves or otherwise generates the data to be transmitted, and the modem controller enables this data to be directly sent to the modem, rather than intercept it, for transmission via the telephone lines.
In the past, modems of this type with dedicated controllers have existed as peripheral devices for microcomputers. For example, they might be located externally of the computer and be accessed by means of a serial communications port located on the computer. In this case, the transfer of data and control characters between the host processor and the modem takes place in a serial fashion. Alternatively, the modem could be incorporated within the housing for the computer itself. Typically, the modem with its controller and other interface circuitry might be mounted on a printed circuit board, or card, that plugs into an expansion slot on the motherboard for the computer. In this configuration, communications between the host processor and the modem can take place in a parallel fashion, directly using the data and control busses for the computer. Again, however, the modem is accessed by means of a communications port rather than being directly addressable by the host processor.
It is desirable to directly incorporate a modem into the structure of a computer, rather than have the modem exist as a peripheral device. In particular, it is desirable to include the modem circuitry directly on the motherboard of the computer and provide the modem with a unique device address that does not have to be accessed through an I/O port. Further along these lines, it is desirable to use the host processor of the computer as the controller for the modem, rather than employ a separate, dedicated controller.
To provide a modem which is incorporated within the structure of a computer presents certain practical considerations that may affect the overall desirability of such a feature from the standpoint of the consumer. When the modem becomes part of the computer architecture, the typical approach might be to have the communications program directly control the modem through the operating system for the host processor. Thus, a communications program which is designed for this type of application has to be specifically written for the operating system. As such, it would not be able to service the popular personal computer market because of the different modem architecture employed in personal computers.
More particularly, presently available applications programs for providing a communications function in personal computers are designed to operate with a modem that includes a dedicated controller and an 8250 UART or a device that emulates the functions of such a UART. A computer which includes an embedded modem but does not incorporate such an interface unit would not be capable of utilizing the presently available communications programs written for existing personal computer architecture. As a result such computers would require new software, and therefore may not be as attractive to the consumer. If it is necessary to provide a new communications program to operate the embedded modem, the cost of writing and acquiring this additional program will increase the net expense for the computer, and possibly require the user to learn new protocols and commands to operate the new program.
Accordingly, it is desirable to provide an embedded modem for a computer that does not require a dedicated controller but is capable of operating with existing communications software that was designed for modems with such a controller and a UART or similar interface for the controller.